/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ec.edu.espe.ccsoft.mantenimiento.bean.converters;

import ec.edu.espe.ccsoft.mantenimiento.bean.AccesoBean;
import ec.edu.espe.ccsoft.mantenimiento.modelos.Acceso;
import javax.faces.bean.ManagedBean;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

/**
 *
 * @author misahaelfernandez
 */
@ManagedBean
@FacesConverter(forClass = Acceso.class)
public class AccesoConverter implements Converter {

    @Override
    public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
        if (value == null || value.length() == 0) {
            return null;
        }
        AccesoBean accesoBean = (AccesoBean) facesContext.getApplication().getELResolver().
                getValue(facesContext.getELContext(), null, "accesoBean");
        return accesoBean.obtenerAcceso(getKey(value));
    }

    java.lang.String getKey(String value) {
        java.lang.String key;
        key = value;
        return key;
    }

    String getStringKey(java.lang.String value) {
        StringBuilder sb = new StringBuilder();
        sb.append(value);
        return sb.toString();
    }

    @Override
    public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
        if (object == null) {
            return null;
        }
        if (object instanceof Acceso) {
            Acceso o = (Acceso) object;
            return getStringKey(o.getCodAcceso().toString());
        } else {
            throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + Acceso.class.getName());
        }
    }
}
